/** 
1、字段为纯数字，判断是否为数字
2、字段为数字或者数字+小数点
3、字段为字符串（不能输入特殊字符，#、@、*等），或者字母+数字
4、校验数字的长度，从x到y
5、字段为邮箱类型，***@***
6、检验两字段的数值大小，进行比较
7、判断是否为邮政编码，六位数字
8、检验字段是否为空  
9、校验字符串的长度，从x到y
*/ 

/* 
* 判断是否为数字，是则返回true,否则返回false 
*/ 

function f_check_number(obj,code){          
    if (/^\d+$/.test(obj.value)){   
       return true;   
    } else {   
       f_alert(code,"请输入数字");  
       obj.focus(); 
       return false;   
    }   
}   

/* 
* 判断是否为整数，是则返回true,否则返回false 
*/ 
function f_check_integer(obj,code) {          
    if (/^(\+|-)?\d+$/.test( obj.value )){   
       return true;   
    }  else {   
        f_alert(code,"请输入整数");   
        obj.focus();
        return false;   
    }   
}   
    
/* 
* 判断是否为实数，是则返回true,否则返回false 
*/ 
function f_check_float(obj,code){          
    if (/^(\+|-)?\d+($|\.\d+$)/.test( obj.value )){   
       return true;   
    }else{   
       f_alert(code,"请输入实数"); 
       obj.focus();  
       return false;   
    }   
}   

/** 
* 取得字符串的字节长度 
*/ 
function strlen(str)   {   
    var i;   
    var len;   
       
    len = 0;   
    for (i=0;i<str.length;i++)   {   
        if (str.charCodeAt(i)>255) len+=2; else len++;   
    }   
    return len;
}  

/* 
用途：检查输入字符串是否只由字母、数字组成 
输入： 
value：字符串 
返回： 
如果通过验证返回true,否则返回false 
*/  
function f_check_NumOrLett(obj,code){    //判断是否是字母、数字组成   
    var regu = "^[0-9a-zA-Z]+$";      
    var re = new RegExp(regu);  
    var mm = obj.value.replace(/\s/g,'') ;
    if (re.test(mm)) {   
      return true;   
    }   
    f_alert(code,"请输入字母或数字");   
    obj.focus();
    return false;   
}   


function f_check_NumLength(obj,code){     
	
    if((strlen(obj.value) >=2)&&(strlen(obj.value)<=8)){
    	
    	return true; 
    }else{
    f_alert(code,"长度在2和8之间");   
    	obj.focus();
    	return false; 
    }
      
}   

function f_check_passwordLength(obj,code,x,y){  
 x=parseInt(x);
 y=parseInt(y);

    if((obj.value.length >=x)&&(obj.value.length<=y)){
    	
    	return true; 
    }else{
    f_alert(code,"长度应在"+x+"位和"+y+"位之间");   
    	obj.focus();
    	return false; 
    }
      
}   

function f_check_stringLength(obj,code,y){  
 y=parseInt(y);

    if(obj.value.length<=y){
    	
    	return true; 
    }else{
    f_alert(code,"长度不应超过"+y+"位");   
    	obj.focus();
    	return false; 
    }
      
}   
       

function f_check_rate(obj,code){
	var strs = obj.value.split("\.");
	if(strs[0].length>4){
		f_alert(code,"整数位不得超过四位");
		obj.focus();
		return false;
	}
	if(strs[1]!=null){
		if(strs[1].length>4){
			f_alert(code,"小数位不得超过四位");
			obj.focus();
			return false;
		}
	}
	
	return true;
}


/* 
* 校验数字的长度和精度 
*/ 
function f_check_double(obj,code){   
    var numReg;   
    var value = obj.value;   
    var strValueTemp, strInt, strDec;      
    var dtype = obj.eos_datatype;   
    var pos_dtype = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")")).split(",");   
    var len = pos_dtype[0], prec = pos_dtype[1];   
    try  
    {          
        numReg =/[\-]/;   
        strValueTemp = value.replace(numReg, "");   
        numReg =/[\+]/;   
        strValueTemp = strValueTemp.replace(numReg, "");   
        //整数   
        if(prec==0){   
            numReg =/[\.]/;   
            if(numReg.test(value) == true){   
                f_alert(code, "输入必须为整数类型"); 
                obj.focus();  
                return false;      
            }              
        }          
        if(strValueTemp.indexOf(".") < 0 ){   
            if(strValueTemp.length >( len - prec)){   
                f_alert(code, "整数位不能超过"+ (len - prec) +"位");  
                obj.focus(); 
                return false;   
            }          
        }else{   
            strInt = strValueTemp.substr( 0, strValueTemp.indexOf(".") );          
            if(strInt.length >( len - prec)){   
                f_alert(code, "整数位不能超过"+ (len - prec) +"位");   
                obj.focus();
                return false;   
            }   
            strDec = strValueTemp.substr( (strValueTemp.indexOf(".")+1), strValueTemp.length );    
            if(strDec.length > prec){   
                f_alert(code, "小数位不能超过"+  prec +"位");  
                obj.focus(); 
                return false;   
            }          
        }          
        return true;   
    }catch(e){   
        alert("in f_check_double = " + e);  
        obj.focus(); 
        return false;   
    }      
}    

/* 
用途：检查输入对象的值是否符合E-Mail格式 
输入：str 输入的字符串 
返回：如果通过验证返回true,否则返回false 
*/  
function f_check_email(obj){     
    var myReg = /^([-_A-Za-z0-9\.]+)@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;    
    if(myReg.test( obj.value )) return true;    
    alert("请输入合法的电子邮件地址"); 
    obj.focus();  
    return false;    
}   
   
/** 
* 校验两个表单域数据的大小，目前只允许比较数字。 
* @param obj1 小值表单域 
* @param obj2 大值表单域 
*/ 
function checkIntervalObjs(obj1 , obj2,code){      
     
    var val1 = parseFloat(obj1.value);   
    var val2 = parseFloat(obj2.value);   
    
     
    
    // 数字类型的比较   
    if((isNaN(val1) && !isnull(val1)) || (isNaN(val2) && !isnull(val2))){   
        f_alert(code,"值不为数字则不能比较！"); 
        obj1.focus();  
        return false;   
    }   
    if(val1 > val2){   
         
            obj2.focus();   
         f_alert(code,"起始值不能大于终止值！");   
        return false;   
    }   
    return true;   
} 

function checkStringObjs(obj1 , obj2,code1,code2){      
     
    var val1 =obj1.value;   
    var val2 = obj2.value;   
    
    
    
    if(val1 != val2){  
         
            obj2.focus();   
         f_alert(code1+"和"+code2,"输入不一致");   
        return false;   
    }   
    return true;   
} 
   
/* 判断是否为邮政编码 */  
function f_check_zipcode(obj)   
{   
    if(!f_check_number(obj,'邮编'))   
        return false;   
    if(obj.value.length!=6)   
    {   
        alert("邮政编码长度必须是6位");  
        obj.focus(); 
        return false;   
    }   
    return true;   
} 

/* 
要求：一、移动电话号码为11或12位，如果为12位,那么第一位为0 
二、11位移动电话号码的第一位和第二位为"13" 
三、12位移动电话号码的第二位和第三位为"13" 
用途：检查输入手机号码是否正确 
输入： 
s：字符串 
返回： 
如果通过验证返回true,否则返回false 
*/  
function f_check_mobile(obj){      
    var regu =/(^[1][3][0-9]{9}$)|(^0[1][3][0-9]{9}$)/;   
    var re = new RegExp(regu);   
    if (re.test( obj.value )) {   
      return true;   
    }   
    alert("请输入正确的手机号码"); 
    obj.focus();  
    return false;      
}   
 
/* 
要求：一、电话号码由数字、"("、")"和"-"构成 
二、电话号码为3到8位 
三、如果电话号码中包含有区号，那么区号为三位或四位 
四、区号用"("、")"或"-"和其他部分隔开 
用途：检查输入的电话号码格式是否正确 
输入： 
strPhone：字符串 
返回： 
如果通过验证返回true,否则返回false 
*/  
function f_check_phone(obj)
{   
    var regu =/^((([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$)/;    
    var re = new RegExp(regu);   
    if (re.test( obj.value )) {   
      return true;   
    }   
    alert("请输入正确的电话号码，区号和号码之间用-隔开"); 
    obj.focus();  
    return false;   
}        
 
/** 
* 检测字符串是否为空 
*/ 
function isnull(str){   
    var i;   
    if(str.length == 0)   
        return true;   
    for (i=0;i<str.length;i++)   
    {   
        if (str.charAt(i)!=' ')    
            return true;   
    }   
    return false;   
}  

/** 
* 检测字符串是否为空 
*/ 
function isNotNull(obj,code){   
    var i;   
    var str = trim(obj.value);
    if(str == ""){
    	f_alert(code,"请输入内容！");
        obj.focus();
        return false;  
    }
    return true;      
}     
/** 
* 检测字符串为空 
*/ 
function isNull(obj,code){   
    var i;   
    var str = obj.value;
    if(str != ""){
    	
        obj.focus();
        return false;  
    }   
    return true;      
}
/** 
* 判断是否是汉字、字母、数字组成[^%&',;=?$\x22]
*/ 
function f_check_ZhOrNumOrLett(obj,code){    
//判断是否是汉字、字母、数字组成
	var regu = "^[\u4E00-\u9FA50-9a-zA-Z]+$";   
	var re = new RegExp(regu);
	if (re.test(obj.value)) {
	  return true;
	}
	
	f_alert(code,"请输入常用字符或文字,\n不能含有特殊字符和空格!"); 
	return false;
}

function f_alert(code,str){
		alert(code+":"+str);
} 

/*
*
*修改页面，读出数据为0（默认赋值的字段），修改为原始空数据
*
*/
		function zeronull(field){
			if(field.value==0||field.value==0.0){
				field.value="";
			}
		}

//去除头部和尾部空格   
function trim(jia) {
    return jia.replace(/(^\s*)|(\s*$)/g, "");    
}   
//去除头部空格     
function ltrim(jia) {   
    return jia.replace(/(^\s*)/g, "");   
}    
//去除尾部空格   
function rtrim(jia) {    
    return jia.replace(/(\s*$)/g, "");    
}   
//去除头尾和中间空格,制表符   
function trimSpaces(Str){       
        var ResultStr = "";       
        Temp=Str.split(/\s/);        
        for(i = 0; i < Temp.length; i++)       
            ResultStr +=Temp[i];       
        return ResultStr;       
}


function trimSpecialCharacter(Str){       
        var ResultStr = "";       
        ResultStr = Str.replace(/[\$%^!&*@(*)(#_@！[]]/g,'');
        return ResultStr;      
}




function isNotNullOfRow(obj,code,i){   
    var str = trim(obj.value);
    if(str == ""){
    	f_alert(code,"第"+parseInt(i+1)+"行，请输入内容！");
        obj.focus();
        return false;  
    }
    return true;      
}  


function f_check_ZhOrNumOrLettOfRow(obj,code,i){    
//判断是否是汉字、字母、数字组成
	var regu = "^[\u4E00-\u9FA50-9a-zA-Z]+$";   
	var re = new RegExp(regu);
	if (re.test(obj.value)) {
	  return true;
	}
	
	f_alert(code,"第"+parseInt(i+1)+"行，请输入常用字符或文字,\n不能含有特殊字符和空格!"); 
	return false;
}

function f_check_stringLengthOfRow(obj,code,y,i){  
 y=parseInt(y);

    if(obj.value.length<=y){
    	
    	return true; 
    }else{
    f_alert(code,"第"+parseInt(i+1)+"行，长度不应超过"+y+"位");   
    	obj.focus();
    	return false; 
    }
      
} 

function f_check_floatOfRow(obj,code,i){          
    if (/^(\+|-)?\d+($|\.\d+$)/.test( obj.value )){   
       return true;   
    }else{   
       f_alert(code,"第"+parseInt(i+1)+"行，请输入实数"); 
       obj.focus();  
       return false;   
    }   
}  


function  isNotZeroRow(i){
		if(i==0){
			alert("请至少输入一条明细");
			return false;
		}else
			return true;
}